// 目标:希望将来写爬虫的时候，来一个类继承祖宗类
// 然后，在子类中处理得到的结果即可

// 爬虫用法，创建爬虫对象，传入URL自动开爬
const https = require('https')
const cheerio = require('cheerio')
import SpiderOptions from "./interfaces/SpiderOptions";

export default class Spider02 {
    // 定义成员
    options:SpiderOptions
    //使用接口定义options的成员
    constructor(options:SpiderOptions = { url:'',method:'get',headers:{}}){
        // 初始化
        this.options = options
        this.start()
    }
    start(){
        let ids:String[] = [];
        // 创建请求对象
        let req = https.request(this.options.url,{
            headers:this.options.headers,
            method:this.options.method 
        },(res:any) => {
            let chunks:any[] = []

            res.on('data',(c:any) => chunks.push(c))

            res.on('end',()=>{
                let result = Buffer.concat(chunks).toString('utf-8')
                // console.log(result)
                // JSON解析
                // console.log(JSON.parse(result).items)
                let data = JSON.parse(result).items
                interface Item {  
                    id: string;  
                }  
                ids = data.map((item:Item) => item.id );
                console.log(ids);
            })  
        })

        // 发送请求
        req.end()
    }
}